package com.ruoyi.insect.domain;

import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;

import java.util.Date;

/**
 * 数据标注对象 disease_label
 */
public class DiseaseLabel extends BaseEntity {
    private static final long serialVersionUID = 1L;

    private Long id;

    @Excel(name = "原图路径")
    private String originalImage;

    @Excel(name = "病虫害名称")
    private String diseaseName;

    @Excel(name = "病虫害症状")
    private String diseaseSymptom;

    @Excel(name = "病虫害解决方案")
    private String diseaseSolution;

    @Excel(name = "危害作物类型")
    private String diseaseType;

    // 新增字段
    @Excel(name = "作物类型")
    private String cropType;

    @Excel(name = "标注数据")
    private String annotationData;

    @Excel(name = "设备ID")
    private String deviceId;

    @Excel(name = "经度")
    private Double gpsLongitude;

    @Excel(name = "纬度")
    private Double gpsLatitude;

    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "拍照时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date photoTime;

    /**
     * 标注结果图片
     */
    private String annotatedImage;

    // getter 和 setter
    public String getAnnotatedImage() {
        return annotatedImage;
    }

    public void setAnnotatedImage(String annotatedImage) {
        this.annotatedImage = annotatedImage;
    }

    // getter和setter方法
    public Long getId() { return id; }
    public void setId(Long id) { this.id = id; }

    public String getOriginalImage() { return originalImage; }
    public void setOriginalImage(String originalImage) { this.originalImage = originalImage; }

    public String getDiseaseName() { return diseaseName; }
    public void setDiseaseName(String diseaseName) { this.diseaseName = diseaseName; }

    public String getDiseaseSymptom() { return diseaseSymptom; }
    public void setDiseaseSymptom(String diseaseSymptom) { this.diseaseSymptom = diseaseSymptom; }

    public String getDiseaseSolution() { return diseaseSolution; }
    public void setDiseaseSolution(String diseaseSolution) { this.diseaseSolution = diseaseSolution; }

    public String getDiseaseType() { return diseaseType; }
    public void setDiseaseType(String diseaseType) { this.diseaseType = diseaseType; }

    public String getCropType() { return cropType; }
    public void setCropType(String cropType) { this.cropType = cropType; }

    public String getAnnotationData() { return annotationData; }
    public void setAnnotationData(String annotationData) { this.annotationData = annotationData; }

    public String getDeviceId() { return deviceId; }
    public void setDeviceId(String deviceId) { this.deviceId = deviceId; }

    public Double getGpsLongitude() { return gpsLongitude; }
    public void setGpsLongitude(Double gpsLongitude) { this.gpsLongitude = gpsLongitude; }

    public Double getGpsLatitude() { return gpsLatitude; }
    public void setGpsLatitude(Double gpsLatitude) { this.gpsLatitude = gpsLatitude; }

    public Date getPhotoTime() { return photoTime; }
    public void setPhotoTime(Date photoTime) { this.photoTime = photoTime; }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("originalImage", getOriginalImage())
                .append("diseaseName", getDiseaseName())
                .append("diseaseSymptom", getDiseaseSymptom())
                .append("diseaseSolution", getDiseaseSolution())
                .append("diseaseType", getDiseaseType())
                .append("cropType", getCropType())
                .append("annotationData", getAnnotationData())
                .append("deviceId", getDeviceId())
                .append("gpsLongitude", getGpsLongitude())
                .append("gpsLatitude", getGpsLatitude())
                .append("photoTime", getPhotoTime())
                .append("createTime", getCreateTime())
                .append("updateTime", getUpdateTime())
                .toString();
    }
}
